﻿using System;
using System.Collections.Generic;
using System.Net.Http;

namespace ClassLibrary1
{
	public static class AccessToken
	{
		// 调用getAccessToken()获取的 access_token建议根据expires_in 时间 设置缓存
		// 返回token示例
		//public static String TOKEN = "24.adda70c11b9786206253ddb70affdc46.2592000.1493524354.282335-1234567";

		// 百度云中开通对应服务应用的 API Key 建议开通应用的时候多选服务
		private static String clientId = "DswwaLypnQm7Aq6F4iSyEgF2";
		// 百度云中开通对应服务应用的 Secret Key
		private static String clientSecret = "wT3DdfYlEyRv4G1HtmRL4cMTMfWz5vSy";

		public static String getAccessToken()
		{
			String authHost = "https://aip.baidubce.com/oauth/2.0/token";
			HttpClient client = new HttpClient();
			List<KeyValuePair<String, String>> paraList = new List<KeyValuePair<string, string>>();
			paraList.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));
			paraList.Add(new KeyValuePair<string, string>("client_id", clientId));
			paraList.Add(new KeyValuePair<string, string>("client_secret", clientSecret));

			HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result;
			String result = response.Content.ReadAsStringAsync().Result;
			var responseEntity = JsonNewtonsoft.FromJSON<ResponseEntity>(result);
			Console.WriteLine(responseEntity.access_token);
			return responseEntity.access_token;
		}
	}
}
class ResponseEntity
{
	public string access_token { get; set; }
	public string expires_in { get; set; }
	public string refresh_token { get; set; }
	public string scope { get; set; }
	public string session_key { get; set; }
	public string session_secret { get; set; }
}